#include "stdafx.h"
#include "ExceptionHandle.h"
#include <QMessageBox>

NCException::NCException(int errNo, string strInfo, string strFileName, string strFuncName, int iLine):
exception(),
m_errNo(errNo),
m_iLine(iLine)
{
	m_strExceptInfo.fromStdString(strInfo);
	m_strFileName.fromStdString(strFileName);
	m_strFuncName.fromStdString(strFuncName);
	if (errNo != 0)
	{
		//assert(false);
	}
}

NCException::NCException(int errNo, QString strInfo, QString strFileName, QString strFuncName, int iLine) :
	exception(),
	m_errNo(errNo),
	m_strExceptInfo(strInfo),
	m_strFileName(strFileName),
	m_strFuncName(strFuncName),
	m_iLine(iLine)
{
	if (errNo != 0)
	{
		//assert(false);
	}
}

NCException::~NCException()
{
}

void NCException::ShowInfo(int idWindow)
{
	QString str = GetInfo();//stringLiteral
	QMessageBox::information(NULL, "Error", GetInfo(), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);

// 	if ()
// 	{
// 
// 	}
// 	else if (idWindow == 0)
// 	{
// 		printf("%s\n", str.c_str());
// 	}
// 	else
// 	{
// 		//MessageBox(idWindow, GetInfo().c_str(), "error", MB_OK);
// 	}
}

QString NCException::GetInfo()
{
	QString ret;
#ifdef _DEBUG
	ret = QString("FileName:") + m_strFileName + QString("\r\n");
	ret = ret + QString("FuncName:") + m_strFuncName + QString("\r\n");
	ret = ret + QString("ErrorLine:");
	char buffer[1024];
	sprintf_s(buffer, "%d", m_iLine);
	ret = ret + QString(buffer) + QString("\r\n");
#endif
	ret = ret + QString("ExceptInfo:") + m_strExceptInfo;
	return ret;
}
